from PIL import Image, ImageDraw, ImageFont


def create_multiline_image(text1, text2, output_path='output004.png', image_size=(400, 100), bg_color='white', text_color='black'):
    img = Image.new('RGB', image_size, color=bg_color)
    draw = ImageDraw.Draw(img)

    # 加载字体，默认使用系统字体
    font_path = "C:/Windows/Fonts/msyh.ttc"  # 或者是其他系统上的等效路径
    font = ImageFont.truetype(font_path, size=20)

    # 加载加粗字体
    bold_font = ImageFont.truetype(font_path, size=30)

    # if bold_font_path is None:
    #     # bold_font = ImageFont.truetype(font_path, size=40)  # 如果没有指定加粗字体，则使用相同的字体
    #     # bold_font = ImageFont.load_default()  # 如果没有指定加粗字体，则使用相同的字体
    #     bold_font = ImageFont.load_default()
    # else:
    #     try:
    #         bold_font = ImageFont.truetype(bold_font_path, size=30)  # 加粗字体大小
    #     except IOError:
    #         print("无法加载加粗字体文件，使用默认字体。")
    #         bold_font = font

    # 计算文本的尺寸
    max_width = image_size[0] - 20  # 留出一些边距
    line_height = font.getbbox("A")[3] - font.getbbox("A")[1] + 5  # 获取单行高度并添加一点间距

    # 第一行
    x1 = (image_size[0] - font.getbbox(text1)[2]) / 2
    y1 = 10
    draw.text((x1, y1), text1, fill=text_color, font=font)

    # 第二行（加粗）
    x2 = (image_size[0] - bold_font.getbbox(text2)[2]) / 2
    y2 = y1 + line_height
    draw.text((x2, y2), text2, fill=text_color, font=bold_font)

    # 第三行（长线）
    line_y = y2 + line_height
    draw.line([(10, line_y), (image_size[0] - 10, line_y)], fill=text_color, width=2)

    # 保存图像
    img.save(output_path)
    print(f"图像已保存至: {output_path}")

# 使用函数
text1 = "这是一行普\t通文字"
text2 = "这是加粗显\t示的文字"
create_multiline_image(text1, text2,)